package py.com.alfa.escriba.gui.rest.services;

import java.io.IOException;
import java.util.List;

import py.com.alfa.escriba.gui.dto.admin.FuncionalidadDTO;
import py.com.alfa.escriba.gui.dto.admin.PerfilDTO;
import py.com.alfa.escriba.gui.dto.admin.UsuarioDTO;



public interface AdministracionService {
	final String SECURE_PATH = "/secure";
	final String BASE_URL = "/admin";

	final String LIST_USUARIO = SECURE_PATH.concat(BASE_URL.concat("/usuario"));
	final String MB_USUARIO = SECURE_PATH.concat(BASE_URL.concat("/usuario/{id}"));
	final String VALIDA_USUARIO = SECURE_PATH.concat(BASE_URL.concat("/usuario/valida"));
	
	final String LIST_FUNCIONALIDAD = SECURE_PATH.concat(BASE_URL.concat("/funcionalidad"));
	final String MB_FUNCIONALIDAD = SECURE_PATH.concat(BASE_URL.concat("/funcionalidad/{id}"));
	
	final String LIST_PERFIL = SECURE_PATH.concat(BASE_URL.concat("/perfil"));
	final String MB_PERFIL = SECURE_PATH.concat(BASE_URL.concat("/perfil/{id}"));

	/******* USUARIO *******/
	UsuarioDTO validaUsuario(String user, String clave) throws IOException;

	public List<UsuarioDTO> listUsuario() throws IOException;
	public UsuarioDTO       createUsuario(UsuarioDTO concepto) throws IOException;
	public UsuarioDTO       saveUsuario(UsuarioDTO concepto) throws IOException;
	public void              deleteUsuario(Long id) throws IOException;
	public UsuarioDTO       showUsuario(Long id) throws IOException;

	/******* FUNCIONALIDAD *******/
	public List<FuncionalidadDTO> listFuncionalidad() throws IOException;
	public FuncionalidadDTO       createFuncionalidad(FuncionalidadDTO concepto) throws IOException;
	public FuncionalidadDTO       saveFuncionalidad(FuncionalidadDTO concepto) throws IOException;
	public void              	  deleteFuncionalidad(Long id) throws IOException;
	public FuncionalidadDTO       showFuncionalidad(Long id) throws IOException;
	
	/******* PERFIL *******/
	public List<PerfilDTO> listPerfil() throws IOException;
	public PerfilDTO       createPerfil(PerfilDTO concepto) throws IOException;
	public PerfilDTO       savePerfil(PerfilDTO concepto) throws IOException;
	public void            deletePerfil(Long id) throws IOException;
	public PerfilDTO       showPerfil(Long id) throws IOException;

}
